package com.diandian.backend.product.mapper;

import com.diandian.backend.product.domain.ProductOfflineInfoPictureVideo;
import com.diandian.backend.product.dto.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ProductOfflineInfoPictureVideoMapper {

    // 查询记录数
    Integer getCount(@Param("data") ProductOfflineInfoPictureVideoPageParamDTO requestDTO);

    // 查询分页中的数据集合
    List<ProductOfflineInfoPictureVideo> getPage(@Param("data") ProductOfflineInfoPictureVideoPageParamDTO requestDTO, @Param("pageSize") Integer pageSize, @Param("offset") Integer offset);

    // 查询详情
    ProductOfflineInfoPictureVideo getDetail(@Param("data") ProductOfflineInfoPictureVideoDetailParamDTO requestDTO);

    // 根据数据id更新记录
    void updateById(@Param("data") ProductOfflineInfoPictureVideoUpdateByIdParamDTO param);

    // 根据数据id删除记录
    void deleteById(@Param("data") ProductOfflineInfoPictureVideoDeleteByIdParamDTO param);

    void deleteByCode(@Param("belong") String belong, @Param("sourceType") String sourceType, @Param("sourceId") String sourceId, @Param("dataType") String dataType, @Param("fileType") String fileType);

    void deleteByProductCode(@Param("belong") String belong, @Param("productCode") String productCode);

    void deleteByCodeIn(@Param("belong") String belong, @Param("sourceType") String sourceType, @Param("sourceIds") List<String> sourceIds, @Param("dataType") String dataType, @Param("fileType") String fileType);

    // 新增
    void add(@Param("data") ProductOfflineInfoPictureVideoAddParamDTO param);

    void batchAdd(@Param("dataList") List<ProductOfflineInfoPictureVideoAddParamDTO> dataList);

    // 查询数据集合
    List<ProductOfflineInfoPictureVideo> getList(@Param("data") ProductOfflineInfoPictureVideoListParamDTO requestDTO);

}